//
//  CAnAlgRealMeasure.h
//  
//
//  Created by  on 2024/9/4.
//  Manual real-time measurement data

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, REALTIME_STATUS) {
    REALTIME_STATUS_NO_MEASURE = 0x00,
    REALTIME_STATUS_MEASURING = 0x01,
    REALTIME_STATUS_DATA_USEFUL = 0x02,
};

@interface CAnAlgRealMeasure : NSObject

@property(strong, nonatomic, readonly) NSNumber* spo2;// Blood oxygen value range is 1-100%; 0xFF is invalid data

@property(strong, nonatomic, readonly) NSNumber* heartRate;// Heart rate value range: 0-200; 0xFF is invalid data
@property(strong, nonatomic, readonly) NSNumber* hrv;//HRV range 0-65535

@property(assign, nonatomic, readonly) uint8_t dataStatus;

@property(assign, nonatomic, readonly) uint16_t motion;// Movement Count

/*hrQualityIndexValue :Heart rate quality index value: Range 1-100, when the value is 40 or above, it means the heart rate is accurate. */
@property(assign, nonatomic, readonly) uint8_t hrQualityIndexValue;

@property(strong, nonatomic, readonly) NSNumber* respirationRate; // Respiration rate, unit: times/minute, 0xFF is an invalid value

@property(strong, nonatomic, readonly)NSNumber* ibi; // Heartbeat interval, 0xFFFF is an invalid value

@property(strong, nonatomic, readonly)NSNumber * stress;// Pressure value, range 0-1, 0xFF is an invalid value

@property(strong, nonatomic, readonly)NSNumber *cardiacCoherence;// Heart continuity, range 0-1, 0xFF is an invalid value

@property(assign, nonatomic, readonly)float spo2RValue; // Actual R value of blood oxygen

- (instancetype)initWithData:(NSData *)data;

@end

NS_ASSUME_NONNULL_END
